With a distributed computing system in which multiple compute nodes are working together, it is useful to be able to exchange information between these nodes. The information shared may be, but is not limited to, sensor data such as temperature, speed, location, etc., or may be application state such as progress in a workflow. It is desirable to enable nodes to request this information from other nodes.
Systems exist which enable such queries between nodes. See, for example, Adjie-Winoto et al., “The design and Implementation of an intentional naming system,” 17th ACM Symposium on Operating Systems Principles (SOSP '99), Operating Systems Review, 34(5): 186-201 (December 1999) (hereinafter “Adjie-Winoto”). The techniques described in Adjie-Winoto support discovery of nodes in a dynamic environment and targeting queries at nodes based on a prescribed attribute/value pair node naming convention. These techniques, however, only target queries at specific entities for static, one-time queries.
With distributed computing environments, information is constantly changing. Thus, systems which allow for the continuous re-evaluation of the target nodes and the management of the continuous queries across those nodes would be desirable, for example, to continuously query only nodes (which are moving) that are within a defined distance of a specific location.